knowledge: 11 insights — login-expired panes, O_APPEND blackboard, numbered-protocol grafts, --ours on mixed conflicts, unittest floor false positives, SwiftUI sheet gating, silent hotkey registration, rolled-back-run assertions (+3 merges) - #180
Conversation
…bile/presentation category
|
Fold from the 2026-09-03 20:38 flush (queue hash |
|
Folded one queued candidate from flush run 20260903-213946-4161 into this branch (commit 3b78273) instead of opening a sibling PR:
Index load-when cell updated; log.md appended; wiki-structure-checks and wiki-lint-prohibitions both clean on the branch. |
…ses into login-expiry and assertion-scanner pages
|
Folded from the 2026-09-04 knowledge-flush (candidates 9a9038861c1d93fc, b9e2ed778fd6d661): (1) login-expiry-during-unattended-turns +1 edge row — a pane showing Login expired while |
Knowledge flush — 12 insight(s)
Claimed 12 rows from
~/.dev-loop/queue(run20260903-184620-64173, launched by the auto-flush hook). 11 ingested on this branch (8 new pages, 3 amended pages, 1 new category), 1 folded into open PR #179's branch. Baseline and post-ingest lint:wiki-lint-prohibitions0 violations,wiki-structure-checks0 findings (283 pages, 13 indexes). Allrelated:ids and inline[id]refs resolve on this branch.Verified best-practice
$varas one word (set -- $argslaunch helper starts malformed tmux sessions) — MERGED intoplatforms-shells-portable-shell-scripts. Source: zsh manual, Expansion §14.3 ("words of unquoted parameters are not automatically split on whitespace unless the option SH_WORD_SPLIT is set") — already cited on the page; new edge-case + Instead-of rows and a field line (2026-08-21, dev-loop issue orchestrate: launch-session.sh accepts space-containing session names and non-worktree dirs — zsh word-splitting in the coordinator silently launches broken workers #123). verified.jqoutput belong inside jq, not a shellforloop — MERGED into the same page as step 9. Source: https://jqlang.org/manual/ (index(s),IN(s),--arg/--argjson) fetched and quoted; field line 2026-08-27 ("Auth Token"producer: 0 rejections in the shell loop, 3 once the test moved into jq). verified.O_APPENDwrite per entry, keep read-modify-write tools off it — NEWinfrastructure-agent-orchestration-concurrent-blackboard-append-file. Sources: POSIXwrite()(https://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html — offset-set-plus-write is atomic under O_APPEND; "each write is atomic" for regular files) andpipe(7)(https://man7.org/linux/man-pages/man7/pipe.7.html) cited only to keep PIPE_BUF from being misread as a regular-file guarantee. verified.infrastructure-agent-orchestration-forward-references-in-a-numbered-protocol. No external primary source governs this authoring practice; rests on the 2026-08-27 field reproduction (scoped review passed, fresh-context whole-diff review found the forward reference, fixc06d299, round-2 clean). field-tested, stated in the page.Login expired · Please run /loginin an unattended pane is terminal, not a stall; coordinator finishes mechanical bookkeeping itself — NEWinfrastructure-agent-orchestration-login-expiry-during-unattended-turns, plus the conflated "usage-limit or re-auth notice" row inunattended-worker-questionssplit into two rows. Sources fetched and quoted by me: https://code.claude.com/docs/en/authentication ("each model request fails with Login expired · Please run /login until you sign in again"; "Renewing early matters most for sessions that run unattended";apiKeyHelper) and https://code.claude.com/docs/en/errors. Field: run i11475, 2026-08-18. verified.git checkout --ours+ count fix on a doc conflict, diff the branch side of that file for non-count content — NEWinfrastructure-agent-orchestration-ours-resolution-on-a-mixed-content-conflict. Git primitives verified at https://git-scm.com/docs/git-checkout (--ours/--theirs= stage 2/3) and https://git-scm.com/docs/git-merge (three-stage index,git show :3:file); the directive itself is field-derived (linkly 2026-08-24, RFC-0028 row lost, 4 currency-test failures). field-tested.assert/pytest.raisesfalse-positives on unittestself.assertX; adjudicate with the canonical script, fix the scanner not the tests — NEWtesting-quality-assertion-scanner-false-positive-on-unittest-convention. Sources: https://docs.python.org/3/library/unittest.html ("These methods are used instead of the assert statement") and https://docs.pytest.org/en/stable/how-to/assert.html. Field: linkly t96/t85, 2026-08-24, canonicaltest-floor.shrc 0. verified.worktree_escapegets deny + relative alternative — FOLDED into open PR knowledge: 12 insights — deny rules under bypass, merged-tree gate, worker verify command, Kotlin daemon heap, extracted-method this (+7 merges) #179 (see Open-PR check). Mechanism reproduced by the research agent in a scratch repo: from a linked worktreegit rev-parse --show-toplevelreturns the worktree root while--git-common-dirreturns the main checkout's.git(https://git-scm.com/docs/git-rev-parse defines both options; the divergence is reproduced, not doc-stated). field-tested for the causal claim..sheet/.fullScreenCoverfrom an already-presenting SwiftUI host is refused; gate the screen-level error sheet — NEWmobile-presentation-gating-nested-sheet-presentation(new category, see Routing). Apple's API pages (sheet(item:onDismiss:content:), fullScreenCover(item:onDismiss:content:)) document the surface but not the single-presenter rule in prose; the runtime warning is corroborated by https://stackoverflow.com/questions/67180982 (title verified through the Stack Exchange API: "SwiftUI [Presentation] / Attempt to present View on ... which is already presenting"). Field: 4 sites across 3 review rounds, 2026-09-03. field-tested.RegisterEventHotKeyfailure in a Finder-launched macOS app: probe with a synthetic key event + window list before restarting — NEWdebugging-methodology-silent-registration-failure-in-a-finder-launched-app. The candidate's stated cause ("another process took the key") was corrected against Apple'sCarbonEventsCore.h(fetched from the phracker/MacOSX-SDKs mirror, HTTP 200, lines 146–152):eventHotKeyExistsErr(-9878) means the same process already registered it, and "it is not an error to register the same hotkey in multiple processes" unlesskEventHotKeyExclusiveis used. Also https://developer.apple.com/documentation/coregraphics/cgwindowlistcopywindowinfo(_:_:) and Hammerspoon issue #1261 (title verified: "RegisterEventHotKey failed: -9878"). Field: 2026-08-18 F7/F8 probe. field-tested (diagnostic method is field-derived; the error semantics are verified).testing-mocking-captured-call-arguments(edge-case row, Instead-of row, field line 2026-08-28, related link tobackend-common-api-design-unenforced-declarations). The page's existing sources (unittest.mock, Jest, Mockito, PIT) already back the state-assertion method; the wiring variant is field-derived. field-tested addition to a verified page.testing-quality-store-assertions-after-a-rolled-back-run. Sources fetched and quoted: https://www.postgresql.org/docs/current/sql-rollback.html ("causes all the updates made by the transaction to be discarded") and https://peps.python.org/pep-0249/ (.rollback()"roll back to the start of any pending transaction"). Field: linkly interpreter, 2026-08-31,KeyErrortraced torepo.rollback()in the non-completed branch. verified.Existing-layer check
Pages read: platforms-shells-portable-shell-scripts, platforms-shells-command-text-inspected-before-execution, platforms-processes-driving-a-tui-in-a-tmux-pane, platforms-processes-background-services, platforms-processes-tool-diagnostics-without-a-failing-exit-code, infrastructure-ci-cd-changed-files-only-gates, infrastructure-agent-orchestration-shared-run-state, infrastructure-agent-orchestration-worktree-isolated-workers, infrastructure-agent-orchestration-session-completion-gates, infrastructure-agent-orchestration-dispatching-after-a-completion-report, infrastructure-agent-orchestration-unattended-worker-questions, infrastructure-agent-orchestration-usage-limit-paused-workers, infrastructure-agent-orchestration-control-signals-vs-primary-artifacts, infrastructure-agent-orchestration-autonomous-decision-rulings, infrastructure-config-path-valued-config, backend-common-storage-multi-object-write-ordering, backend-common-llm-binding-instructions-for-agents, backend-common-change-impact-widening-a-closed-value-table, backend-common-change-impact-call-site-enumeration, backend-common-api-design-unenforced-declarations, backend-common-integrations-externally-owned-defaults, backend-common-orm-transaction-boundaries, qa-process-adversarial-change-review, qa-process-evaluating-review-feedback, qa-process-completion-claims, qa-document-verification-spec-document-gates, qa-deliverables-quantitative-claims-in-a-published-document, testing-quality-checks-that-cannot-pass, testing-quality-tests-that-cannot-fail, testing-quality-spec-artifact-checks, testing-quality-write-path-assertions, testing-mocking-captured-call-arguments, testing-data-test-data-and-isolation, debugging-methodology-probe-path-vs-operation-path
Domain indexes read: INDEX.md and wiki/{platforms,infrastructure,testing,qa,backend,backend/python,debugging,mobile}/index.md. Also read from PR #179's head (not on main, so not listed above): semantic-conflicts-after-parallel-merge, verify-command-in-a-worker-brief, deny-rules-under-bypassed-permissions.
Overlaps and outcomes:
portable-shell-scriptsalready carries the zsh no-word-split mechanism (Do-this step 4 table) andchanged-files-only-gatescovers passing a jq list to a consumer; neither covered the multi-launch helper or the in-jq membership test → merged as rows/step 9 (page now exactly 120 body lines). Related links added: driving-a-tui-in-a-tmux-pane, shared-run-state, changed-files-only-gates, tests-that-cannot-fail.shared-run-statecovers single-writer status files and overwrite ordering;multi-object-write-orderingcovers ordering across objects and was the (wrong) page the fixing commit cited. Neither states O_APPEND for a single multi-writer file → new page; reverse link added on multi-object-write-ordering.unattended-worker-questionshad one row lumping usage-limit and re-auth notices and routing both to usage-limit-paused-workers, which only covers limits with a stated reset. Conflict resolved by splitting the row; reverse link added on usage-limit-paused-workers.widening-a-closed-value-tableandquantitative-claims-in-a-published-documentare adjacent, not owning → new page (edge case explicitly hands the no-textual-conflict case to the merged-tree gate).checks-that-cannot-passis about validating a gate before adoption;evaluating-review-feedbackis about reviewer findings, not an automated floor → new page; reverse link on checks-that-cannot-pass.probe-path-vs-operation-pathis a different situation (a probe that passes while the operation fails) → new page; reverse link added there.captured-call-argumentsedge-case row 4 already handles "assert the wiring at the level that reads it"; the boot-probe-only variant was missing → merged.unenforced-declarationsowns runtime strictness, not test authorship → related link only.test-data-and-isolationcovers harness rollback for isolation,write-path-assertionsthe success path → new page; reverse link on write-path-assertions.Open-PR check
Open
knowledge/*heads: #179 (knowledge/choiyounggi-20260903-172728) only. Fetched and diffed againstorigin/mainforwiki/(36 files).shared-run-stateedited in #179 for coordinator-liveness and bats-fixture escalations; no append-file content/login, OAuth, or credentials--ourson mixed content)semantic-conflicts-after-parallel-mergeis scoped to merges with no textual conflict; #6 is the textual-conflict resolution choicechecks-that-cannot-passonly inrelated:worktree-isolated-workersfor edits that already landed in main; #8's pre-write deny + relative-path response and the--git-common-dirmechanism are not therewhat-to-mockandcaptured-call-argumentsonly viarelated:test-data-and-isolationedit is about sandbox config discoveryExpected merge friction with #179: both branches append to
log.mdand both insert rows inwiki/infrastructure/index.md's agent-orchestration table (this branch inserts after thedispatching-after-a-completion-reportrow, #179 edits theshared-run-state/worktree-isolated-workersrows and appends two rows at the end — non-adjacent, so expected to auto-merge;log.mdwill need a trivial both-sides resolution).Routing decision
portable-shell-scriptsconcurrent-blackboard-append-fileforward-references-in-a-numbered-protocollogin-expiry-during-unattended-turns(+ row split inunattended-worker-questions)ours-resolution-on-a-mixed-content-conflictassertion-scanner-false-positive-on-unittest-conventionworktree-isolated-workerson PR #179's branchgating-nested-sheet-presentationsilent-registration-failure-in-a-finder-launched-appcaptured-call-argumentsstore-assertions-after-a-rolled-back-runNew category justification (#9): mobile's existing categories are lifecycle, offline, networking, release, performance, navigation, permissions, security. Modal presentation contention (several sheets/covers on one host, screen-level error sheets, persistent tabs) is a UI-composition concern none of them owns;
navigationcovers entry routing (deep links, push taps), not presentation stacking. The domain index preamble and the root INDEX.md route line were extended to name it.All other candidates fit existing categories; no other category was added. Project-specific wording (linkly, loop-implement, task ids) was generalized in page bodies and kept only in dated field-evidence lines.